package com.xlf.service.ai.service;

import com.xlf.service.ai.pojo.dto.ChatBaseRequest;
import com.xlf.service.ai.pojo.dto.ChatResponse;

import java.util.function.Consumer;


public interface SingleBot {

    /**
     * 单轮对话，无上下文记忆，默认参数
     * （非流式）
     *
     * @param content 对话内容
     * @return ChatResponse 响应实体类
     */
    ChatResponse chatSingle(String content);


    /**
     * 单轮对话，无上下文记忆，支持参数配置
     * （非流式）
     *
     * @param chatRequest 请求实体类
     * @return ChatResponse 响应实体类
     */
    <T extends ChatBaseRequest> ChatResponse chatSingle(T chatRequest);


    /**
     * 单轮对话，无上下文记忆，支持参数配置
     * （流式）
     *
     * @param chatRequest 请求实体类
     * @param subscription 订阅流式输出的内容
     */
    <T extends ChatBaseRequest> void chatSingleOfStream(T chatRequest, Consumer<ChatResponse> subscription);


    /**
     * 单轮对话，无上下文记忆，默认参数
     * （流式）
     *
     * @param content 对话内容
     * @param subscription 订阅流式输出的内容
     */
    <T extends ChatBaseRequest> void chatSingleOfStream(String content, Consumer<ChatResponse> subscription);


}
